multiselection: Implement get_selection_in_range()
authorBenjamin Otte <otte@redhat.com>
Wed, 24 Jun 2020 03:25:28 +0000 (05:25 +0200)
committerBenjamin Otte <otte@redhat.com>
Fri, 26 Jun 2020 05:13:32 +0000 (07:13 +0200)
gtk/gtkmultiselection.c

index 1a6dcd3d4f7cf31758153df8664c3bc75a89d0c4..34e218d7a5af4666b667dc51e38b7e9b10dbb58d 100644 (file)
@@ -107,6 +107,16 @@ gtk_multi_selection_is_selected (GtkSelectionModel *model,
   return gtk_bitset_contains (self->selected, position);
 }
 
+static GtkBitset *
+gtk_multi_selection_get_selection_in_range (GtkSelectionModel *model,
+                                            guint              pos,
+                                            guint              n_items)
+{
+  GtkMultiSelection *self = GTK_MULTI_SELECTION (model);
+
+  return gtk_bitset_ref (self->selected);
+}
+
 static void
 gtk_multi_selection_toggle_selection (GtkMultiSelection *self,
                                       GtkBitset         *changes)
@@ -192,6 +202,7 @@ static void
 gtk_multi_selection_selection_model_init (GtkSelectionModelInterface *iface)
 {
   iface->is_selected = gtk_multi_selection_is_selected;
+  iface->get_selection_in_range = gtk_multi_selection_get_selection_in_range;
   iface->set_selection = gtk_multi_selection_set_selection;
 }